# Пример с VerbaTest

Работающий пример безостановочной обработки файлов, подкидываемых 
во входные папки. В результате получаются файлы в выходной папке, 
а исходные перемещаются в подпапки *ok* или *bad* с текущей датой 
(все это настраивается), очищая вход в любом случае.

## VerbaTest

Эти скрипты используют тестовую утилиту, собранную с помощью 
системных компиляторов *csc* из состава установленных библиотек .NET.
Примеры этого есть в папке [test]:

  * ```csc.cmd``` - для .NET 3.5
  * ```csc4.cmd``` - для .NET 4+

Для сборки требуются классы *Wbotho*, *Posh*, *Wftesto*, *VerbaTest*.

## Общий справочник

Для скриптов создается общий справочник, для которого не требуется 
переставлять ключи для каждой операции. 
Подробнее о таком справочнике в [pub].

## Настройки

Все настройки в файле *init.cmd*: идентификаторы ключей, путь к общему 
справочнику (*C:\Pub*), идентификаторы адресатов (*TOXXX*). 
Файл вызывается первым использующим скриптом.

## Использование

    encrypt in\* out\ XXXXSSSSSS XXXX [ext]
    decrypt in\* out\ XXXX [ext]

    sign in\* out\ XXXXSSSSSSYY
    verify in\* out\
    unsign in\* out\

    sign2 in\* out\ XXXXSSSSSSYY sig
    verify2 in\* out\ sig

Если указано *ext*, то расширение файла после обработки меняется на 
указанное.

При использовании подписи в отдельном файле, *sig* указывает расширение
этого файла.

В случае успешной обработки исходные файлы перемещаются в создаваемую 
папку *in\ok\YYYYMMDD*, в случае любой ошибки - в *in\bad\YYYYMMDD*. 
Это позволяет постоянно подкидывать новые файлы для обработки и не 
прерывать работу при возникновении сбоев. 
Ход обработки логируется в *logs\YYYYMMDD.log*. Можно указать два лога. 

## Самотестирование

В файле *_test.cmd* пример использования, где создается папка *test* с 
тестовым файлом, а затем он подписывается в создаваемую папку *s*, затем 
зашифровывается в *e*, расшифровывается в *d*, проверяется подпись в *v* и 
снимается в *u*.

С подписью в отдельном файле пример подписывается в создаваемую папку *s2*,
затем проверяется в *v2*, а снимать уже отдельную подпись незачем.

Разумеется, предварительно надо задать идентификаторы в 
*init.cmd*, иметь подготовленный общий справочник в *C:\Pub* и все эти 
ключи, загруженные в память драйвера *asrkeyw* (ключевые носители после 
этого не требуются).

[test]: ../../test
[pub]: ../../pub
